package org.kzwl.service.web;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.kzwl.comm.pojo.ResponseData;
import org.kzwl.comm.pojo.bo.AdminQueryCuVolunteersBO;
import org.kzwl.comm.pojo.bo.SaveCuVolunteersBO;
import org.kzwl.comm.pojo.bo.thear.GetRecordBO;
import org.kzwl.comm.pojo.bo.volunteers.RegisterVolunteersBO;
import org.kzwl.comm.pojo.bo.volunteers.VolunteersBasicBO;
import org.kzwl.comm.pojo.bo.volunteers.VolunteersSignBO;
import org.kzwl.comm.pojo.dto.volunteers.QueryDetailsDTO;
import org.kzwl.comm.pojo.dto.volunteers.VolunteersDTO;
import org.kzwl.entity.web.CuVolunteers;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 张国伟/郭家恒
 * @since 2020-12-17
 */
public interface CuVolunteersService extends IService<CuVolunteers> {

    ResponseData<Void> saveOne(SaveCuVolunteersBO saveCuVolunteersBO);

    ResponseData<IPage<CuVolunteers>> queryPage(AdminQueryCuVolunteersBO adminQueryCuVolunteersBO);

    ResponseData<Void> updateOne(SaveCuVolunteersBO saveCuVolunteersBO);

    ResponseData<Void> deleteId(Long Id);

    ResponseData<CuVolunteers> queryId(Long Id);

    //志愿者服务基础查询
    IPage<VolunteersDTO> queryBasic(VolunteersBasicBO bo);

    //志愿者服务详细查询
    QueryDetailsDTO queryDetails(VolunteersBasicBO bo);

    //注册成为志愿者
    void registerVolunteers(RegisterVolunteersBO bo);

    //参加志愿者活动
    void volunteersSign(VolunteersSignBO bo);

    int volunteersCount();

    //查询志愿者参与记录
    List<VolunteersDTO> getRecord(GetRecordBO bo);
}
